In many instances, specialized computing hardware, such as specialized processing units, can provide better performance than general-purpose central processing units (CPU's). While CPU's are extremely flexible, specialized computer hardware sacrifices some of this flexibility to obtain performance gains for certain types of problems. For example, specialized processing units, such as graphics processing units (GPU's) and field-programmable gate arrays (FPGA's), are often readily available, relatively inexpensive, and widely used. GPU's, in particular, are very well suited to many classes of highly parallel, computationally intensive tasks and can provide 10 to 100 times better performance per watt and per dollar than CPU's for many applications. Consequently, GPU's and even FPGA's are now used in many high-performance computing (HPC) systems. A particular hardware platform can contain a number of different types of processing units.